Data records can reside in many different places. In existing retrieval systems and methods, a client seeking information sends a request to a server. Typically, only files that are registered with that server are returned. Disadvantageously, the search is also usually restricted to a local, identified system. The search is thus conducted only where the server knows in advance to look.
Another disadvantage of known retrieval systems is the difficulty in accessing data in different forms. Current retrieval systems are typically designed to search for data in limited forms. One example is where a client requests files based on a subject, like a person's name. Search results for this type of search may only retrieve text files of peoples' names. Another problem in current retrieval systems is that the client may receive text and image files in the search results, but cannot seamlessly access the image files. Yet another problem in current retrieval systems is that video and sound files related to the request may not even be found in the search results. For example, a doctor might be able to retrieve medical records on a specific patient, but cannot view MRI or X-Ray results associated with that record.
A distributed database is one where data is stored and retrieved among multiple machines connected by a network. Typically, each machine in which some portion of the data in a distributed database may reside is called an application server. One commonly asked question in an application server environment is: Where is data associated with a particular entity in a distributed database? The data location is a key question when a distributed database has highly dynamic, and even spontaneous, data distribution properties.
In networked environments where there are a large number of data repositories and any particular entity does not have data in all of the data repositories, a mechanism is needed that would permit queries to be directed only at data repositories with relevant information. It would also be beneficial to permit membership in the set of data repositories itself to be highly dynamic. Such a system would support on-the-fly addition and removal of data repositories from the topology of a distributed database seamlessly and without the need to reprogram the database.
Another challenge faced in networked environments is scaling system capabilities in a manner sufficient to handle variable demand for resources. A system and method for scaling resources to accommodate demands for those resources is also desirable.